¿Qué es LOG4NET?

Es una librería para escribir Log.

Características

  1. Permite emitir Log a múltiples destinos (Archivos de texto, base de datos, registro de eventos de Windows, email, etc.).
  2. Monitorear tamaño y contenido de archivo (pudiendo crear otro dependiendo del tamaño definido y eliminar archivos anteriores).
  3. Genera mínimo impacto en el performance, ya que fue diseñada para ser muy rápida y flexible.
  4. Es una arquitectura probada en diferentes lenguajes de programación.
  5. Soporte para múltiples Frameworks.
  6. Configuración dinámica (en tiempo de ejecución, formatos, etc.).
  7. Configuración vía XML.

Como Descargar

Se puede bajar directamente de la página de Apache y agregar la Dll.

http://logging.apache.org/log4net/

Se puede bajar directamente desde Nuget en el Visual Studio colocando las siguientes líneas:

Install-Package log4net

Para esto se hace lo siguiente:

Ir a la opción TOOLS ==> Nuget Package Manager ==> Package Manager Console.

Se agregara la línea antes mencionada y se presionara “enter” para configurar dicho proyecto.

Uso

Una vez instalado se deberá modificar el archivo de configuración que tengamos en .NET pudiendo ser un Web.config o un App.config

Se deberán agregar las siguientes líneas en el archivo de configuración:

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>

Así también se agregara una sección única y exclusiva para el Log4net, en este ejemplo será solo para almacenar en un archivo TXT; pero en el sitio de apache podrán apreciar los ejemplos con BD, EMAIL, etc.

<log4net debug="false">
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="FILE" value="C:\Logs\test.txt"/>
<param name="AppendToFile" value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximunFileSize value="1MB"/>
<staticLogFileName value="true"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{dd-MM-yyyy HH:mm:ss}] [%level] %message %newline"/>
</layout>
</appender>
<root>
<level value="ALL"></level>
<appender-ref ref="LogFileAppender"/>
</root>
</log4net>

Finalmente, se agregara en la clase Main de la aplicación una línea más que indicara el inicio de la clase Log4net.


//Inicializa el log4net
log4net.Config.XmlConfigurator.Configure();

Declaramos una variable de tipo pública y estática que será vista desde todo el proyecto, para poder reutilizarla. Si nuestra app es MVC o web será puesta en el global.asax

private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

Con estos simples cambios se podrá apreciar que al correr la aplicación deberá crear un archivo txt en la siguiente ruta “C:\Logs\test.txt”; la cual registrara todo aquello que deseemos registrar en un pequeño archivo txt y el cual no superara más de 1 MB.